#include <string.h>
#include <stdio.h>

void includar (){
  
  //abrir fichero intermedio
  FILE * antiguo = fopen("final.o", "r");
  FILE * nuevo   = fopen("final.asm", "w");
  FILE * temp    = NULL;
  //leer y copiar hasta el final
  char linea [500];
  while (!feof(antiguo)){
    memset (linea, 0, 500 * sizeof(char));
    fgets(linea , 500, antiguo);
    if (strncmp("#include ", linea, 9) == 0){
      //printf("Incluyendo el archivo: \n");
      //si encuentra #include hacer el append
      char * apendice = &linea[9];
      apendice[strlen(apendice)-1] = '\0';
      //printf("%s\n", apendice);
      //abre el archivo a incluir
      temp = fopen(apendice, "r");
      if (temp != NULL) {
        //leer y copiar hasta el final
        while (!feof(temp)){
          memset (linea, 0, 500 * sizeof(char));
          fgets(linea , 500, temp);
          //printf("%s\n", linea);
          fprintf(nuevo, "%s", linea);
        }
        //cerrar los ficheros
        fclose (temp);
      } else {
        fprintf(stderr, "No se ha podido abrir el fichero %s\n",
                apendice);
        fprintf(stderr, "El codigo final estara incompleto\n");
      }
    }else{
      fprintf(nuevo, "%s", linea);
    }
  }
  //cerrar los ficheros
  fclose (antiguo);
  fclose (nuevo);
  //renombrar archivos
}
